using System;

namespace Domain.Entities
{
    public class PrivateMessage
    {
        private int id;
        private string subject;
        private string content;
        private DateTime dateSent;
        private bool isRead;
        private bool isArchived;
        private bool isTrashedBySender;
        private bool isTrashedByReceiver;
        private bool isDeletedBySender;
        private bool isDeletedByReceiver;

        private User sender;
        private User receiver;

        public virtual int Id
        {
            get { return id; }
            internal set { id = value; }
        }

        public virtual string Subject
        {
            get { return subject; }
            internal set { subject = value; }
        }

        public virtual string Content
        {
            get { return content; }
            internal set { content = value; }
        }

        public virtual DateTime DateSent
        {
            get { return dateSent; }
            internal set { dateSent = value; }
        }

        public virtual bool IsRead
        {
            get { return isRead; }
            internal set { isRead = value; }
        }

        public virtual bool IsArchived
        {
            get { return isArchived; }
            internal set { isArchived = value; }
        }

        public virtual bool IsTrashedBySender
        {
            get { return isTrashedBySender; }
            internal set { isTrashedBySender = value; }
        }

        public virtual bool IsTrashedByReceiver
        {
            get { return isTrashedByReceiver; }
            internal set { isTrashedByReceiver = value; }
        }

        public virtual bool IsDeletedBySender
        {
            get { return isDeletedBySender; }
            internal set { isDeletedBySender = value; }
        }

        public virtual bool IsDeletedByReceiver
        {
            get { return isDeletedByReceiver; }
            internal set { isDeletedByReceiver = value; }
        }

        public virtual User Sender
        {
            get { return sender; }
            internal set { sender = value; }
        }

        public virtual User Receiver
        {
            get { return receiver; }
            internal set { receiver = value; }
        }
    }
}